package cn.shop.cloud.redis;

/**
 * @program: shop-parent
 * @ClassName MemberServerKeyPrefix
 * @description:
 * @author: Mokio
 * @create: 2024−12-24 10:01
 * @Version 2024 2.2 ; jdk1.8.0_181
 **/
// 使用自定义的redis中的过期时间来帮助我们区分信息重要性，用前缀来区分用户
// 关于用户的expireSeconds，我们需要保护用户的隐私，所以我们给半个小时的过期时间
public class MemberServerKeyPrefix implements KeyPrefix{
    // 用户唯一前缀
    public String prefix;
    // 用户信息过期时间
    public int expireSeconds;

    // 构造器
    public MemberServerKeyPrefix(String prefix, int expireSeconds) {
        this.prefix = prefix;
        this.expireSeconds = expireSeconds;
    }

    // 我们在这里定义了一个用户令牌（静态常量），规定了前缀，过期时间，
    // 我们在登录的时候，就直接使用这个前缀，然后把token作为key，把用户信息作为value。
    public static final MemberServerKeyPrefix USER_TOKEN =
            new MemberServerKeyPrefix("userToken",30*60);

    // 重写获取时效和前缀的方法
    @Override
    public int getExpireSeconds() {
        return expireSeconds;
    }

    @Override
    public String getPrefix() {
        return prefix;
    }
}
